import { call, put, takeEvery, takeLatest, take, fork} from 'redux-saga/effects'

function* watchSaga1(action){
    console.log(action)
    // while (true){
    //     // take 监听 组件发来的action
    //     yield take('get-list1')
    //     // fork 同步执行异步函数
    //     yield fork(getList1)
    // }
    yield takeEvery("get-list1", getList1)
}
function* getList1(){
    // 异步处理
    // 使用call函数发布异步请求
    // 还可以链式调用
    let res1 = yield call(getlistaction_1) //阻塞式调用fn 
    let res2 = yield call(getlistaction_2 ,res1) 
    yield put({
        type: 'change-list1',
        payload: res2
    })
    // put函数发出新的action 非阻塞式

}
function getlistaction_1(){
    return new Promise((res)=>{
        res(['111', '222', '333'])
    })
}
function getlistaction_2(data){
    return new Promise((res)=>{
        res([...data, '999', '0000'])
    })
}
export default watchSaga1